The advent of cloud-based computing architectures has opened new possibilities for the rapid and scalable deployment of virtual Web stores, media outlets, social networking sites, and many other on-line sites or services. In general, a cloud-based architecture deploys a set of hosted resources such as processors, operating systems, software and other components that can be combined together to form virtual machines. A user or customer can request the instantiation of a virtual machine or set of machines from those resources from a central server or cloud management system to perform intended tasks, services, or applications. For example, a user may wish to set up and instantiate a virtual server from the cloud to create a storefront to market products or services on a temporary basis, for instance, to sell tickets to or merchandise for an upcoming sports or musical performance. The user can subscribe to the set of resources needed to build and run the set of instantiated virtual machines on a comparatively short-term basis, such as hours or days, for their intended application.
Typically, when a user utilizes a cloud, the user must track the software applications executed in the cloud and/or processes instantiated in the cloud. For example, the user must track the cloud processes to ensure that the correct cloud processes have been instantiated, that the cloud processes are functioning properly and/or efficiently, that the cloud is providing sufficient resources to the cloud processes, and so forth. Due in part to the user's requirements and overall usage of the cloud, the user may have many applications and/or processes instantiated in a cloud at any given instant, and the user's deployment of virtual machines, software, and other resources can change dynamically over time. In cases, the user may also utilize multiple independent host clouds to support the user's cloud deployment. That user may further instantiate and use multiple applications or other software or services inside or across multiple of those cloud boundaries, and those resources may be used or consumed by multiple or differing end-user groups in those different cloud networks.
In terms of the administrative capture of a user's resource consumption that may be spread across several independent host clouds, existing platforms today provide no mechanism by which a resource provider and/or other operator or administrator can track the resource consumption by the user across all currently utilized host clouds, in an organized or centralized fashion. That is, the user may have instantiated a certain number of instances or copies of an operating system or application in one host cloud, while at the same time running or executing another number of instances of the same operating system or application in another, independent host cloud or clouds. In instances, the set of host clouds may operate independently and with no operating agreement between them. Usage data for the user may therefore not be shared or be visible between those host clouds. In addition, the set of host clouds can also change over time during the course of a week, month, and/or other period, making coordination of subscription details including usage history difficult or impossible.
In cases where the user may subscribe to operating system, application, and/or other software or hardware resources based on subscription levels or limits, it may accordingly be difficult or impossible to keep a running tally of the user's resource consumption on an aggregate basis, across all operative host clouds. If the user, for instance, has a subscription limit of 300 instances of an executing application with a per-cloud limit of 100 instances, and reaches 100 instances in one host cloud at the same time that 90 instances of that application is operating in a second host cloud and 120 are operating in a third cloud, the application provider, individual host clouds, and/or other entities may not be able to timely or accurately determine that the user has reached their instance limit in one cloud, and exceeded their instance threshold in a second cloud. This can occur, for example, because individual host clouds may not have visibility on the resource consumption and/or subscription limits or parameters that may apply in other clouds.
Moreover, those entities and their associated billing infrastructure may not be equipped to identify not just over-consumption of resources within certain subscription or usage periods, but also under-consumption of those resources. The individual host clouds and other entities may therefore not be able to accurately apply the user's subscription limits and/or other parameters, such as supplemental billing for over-limit resource consumption, on an aggregate basis. Among other things, this may prevent any individual host cloud, or application provider or other resource provider, from identifying the potential under-consumption of one or more subscribed resources in diverse host clouds that could, in theory, be captured and aggregated to permit the user to receive a credit, offset, and/or other adjustment to their overall subscription costs, on an aggregate basis.
Further, in terms of subscription management and associated tracking of resource consumption, in known cloud management systems and related billing infrastructure, the subscription period or other time interval that is used to track the user's consumption of processor, memory, operating system, or other resources may be fixed or predetermined. That interval may be set, for example, to a one-hour, one-day, and/or other period or interval over which the user's consumption of cloud resources is accumulated. When a conventional cloud management system employs such fixed or relatively coarse-grained set of intervals, however, the resource usage that is captured may not be fully accurate or timely. When the cloud management system or associated logic takes a snapshot of operating system instances, for instance, on a once-per-hour basis, if a particular user exhibits bursty or other transient consumption patterns, such as consumption of operating system instances that exceeds subscription limits for only a few minutes at a time, the tracking infrastructure may not be able to detect or resolve those peaks. In cases, the user's subscription levels might call out for additional subscription fees, limit adjustments, and/or other factors that should be applied to large or transient excursions in resource consumption. Those factors may not be accounted for when the cloud management system or associated administrative infrastructure is incapable of detecting such consumption events within a relevant consumption period.
In further aspects, a cloud provider or operator, network administrator, and/or other user may wish or may find it useful to track resource consumption over multiple levels or layers of time periods. That is, in addition to comparatively short-term subscription or consumption intervals over which resource usage is tracked, it may be advantageous to also combine or aggregate several smaller subscription intervals or periods into a hierarchy or set of layers of time periods, for each of which periods different resource consumption costs and/or other factors may apply. Thus for instance, although different periods of the day may have different processor consumption limits for a given user, each with associated excess consumption or overage costs, at times or under certain conditions the cloud provider, operator, and/or other user may wish to include further adjustments to the user's consumption stream. For example, if the cloud operator or provider is experiencing a period of time where the cloud has maximized the user of its resources, and is being forced to acquire backup resources on a temporary or re-clouding basis, the operator or provider may wish to discourage any additional over-consumption of resources by applying a higher-order set of overage costs or constraints, in addition to the limits and possible costs that may apply over shorter or smaller consumption intervals. Moreover, in cases, the cloud operator or provider may wish to track multiple resources being consumed by a user, to generate a subscription or overage fee, cost, and/or other factor which is a function of the user's consumption of the two or more resources, on a joint or combined basis.
It may be desirable to provide systems and methods metering cloud resource consumption using multiple hierarchical subscription periods, in which resource consumption and corresponding service level agreements (SLAs) or other subscription parameters can be tracked and subscription costs and other factors applied over multiple hierarchical subscription periods, and potentially for multiple resources.